/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"0ABA245C-5082-4FEC-874B-F977E0D7E4DD"}
 * @AllowToRunInFind
 */
function elige_producto()
{
	//var found = fac_cabecera_to_fac_detalle.getSize()
	if((globals.iva_del_producto == null) || (found==1))
		{
		globals.iva_del_producto=fac_detalle_to_productos.tasa_iva_id;
		}
	
	if (fac_detalle_to_productos.tasa_iva_id != globals.iva_del_producto)
	{
		 globals.DIALOGS.showWarningDialog('Aviso',"Debe incluir productos con igual tipo de IVA en la misma factura",'OK');
		 elements.cod_producto.requestFocus()
		 // blanquear el elegido incorrectamente
		 producto_id=null
	}
	else
	{
	if (globals.es_fc_exportacion!=1)  //==0 es FC comun  // 09/06/2010  FC exportacion p/no extranjero
	{  // 09/06/2010  FC exportacion p/no extranjero
	// tomo precio de productos para usarlo en renglon, se garega iva p/FC B
	//31/05/2010   poner iva en el precio cuando = "B" 
	//buscar tasa iva////////////////////
	/** @type {JSFoundSet<db:/infocom/tasa_iva>}*/
	var fs_tasa_iva = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'tasa_iva')
	fs_tasa_iva.loadAllRecords()
	fs_tasa_iva.find()
	fs_tasa_iva.tasa_iva_id=fac_detalle_to_productos.tasa_iva_id
	var found= fs_tasa_iva.search()
	if (found == 1)
		globals.gIva_factura= fs_tasa_iva.tasa_iva_porc;
	else
		globals.gIva_factura= 0.00;
		
	// calcula multi////////////////////
	globals.multi=1;
	if (forms.fac.fac_cabecera_to_clientes.clientes_to_relacion_iva_letra.rel_iva_calcula == 1)
	{
		if (forms.fac.fac_cabecera_to_clientes.clientes_to_relacion_iva_letra.rel_iva_discrimina == 1) 
			globals.multi= 1;  // es A
		else  // es B 
			// globals.multi= 1 + (globals.gIva_factura / 100);  //20/10/2010 x redondeo
			globals.multi= 1 + globals.operacion(globals.gIva_factura,'/',100);  //20/10/2010 x redondeo
	}
	else
	{ // es E
		globals.gIva_factura= 0;
		globals.multi=1;
	}
	} // 09/06/2010  FC exportacion p/no extranjero
	else  // 09/06/2010  FC exportacion p/no extranjero
	{ // 09/06/2010  FC exportacion p/no extranjero
		globals.gIva_factura= 0; // 09/06/2010  FC exportacion p/no extranjero
		globals.multi=1; // 09/06/2010  FC exportacion p/no extranjero
	} // 09/06/2010  FC exportacion p/no extranjero
	
	// precio_unitario = globals.redondeo(fac_detalle_to_productos.precio_unitario * globals.multi);  //20/10/2010 x redondeo
	precio_unitario = globals.operacion(fac_detalle_to_productos.precio_unitario,'*', globals.multi);  //20/10/2010 x redondeo
	// 27/06/2010 total_renglon=globals.redondeo(precio_unitario * cantidad)
	recalcula_total_renglon();
	texto=fac_detalle_to_productos.descripcion
	//31/05/2010  hasta
    //precio_unitario = fac_detalle_to_productos.precio_unitario  //31/05/2010
	cod_producto = fac_detalle_to_productos.cod_producto
	}
	return true
}

/**
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"FA1F5897-3C5C-481F-98F1-2C8A714F7522"}
 */
function recalcula_total_renglon() 
{
	// 27/06/2010 se agregó la fórmula sgte :
	if (tarifa_por_viaje==1)
	{
		//total_renglon=globals.redondeo(precio_unitario * cantidad);  //20/10/2010 x redondeo
		total_renglon=globals.operacion(precio_unitario,'*',cantidad); //20/10/2010 x redondeo
		total_renglon_ref=globals.operacion(precio_unit_lista,'*',cantidad); //18/04/2012
	}
	else
	{
		//total_renglon=globals.redondeo((precio_unitario * cantidad) / 1000); //20/10/2010 x redondeo
		var aux_total_renglon=globals.operacion(precio_unitario,'*',cantidad); //20/10/2010 x redondeo
		total_renglon=globals.operacion(aux_total_renglon,'/',1000);           //20/10/2010
		var aux_total_renglon_ref=globals.operacion(precio_unit_lista,'*',cantidad); //20/10/2010 x redondeo
		total_renglon_ref = globals.operacion(aux_total_renglon_ref,'/',1000); // 18/04/2012
	}
	return true
}

/**
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"CEF83E05-0C1E-4C88-AC6A-D78700D3E54D"}
 */
function recalcula_precio() 
{
	//precio_unitario = globals.redondeo(precio_unitario * globals.multi); //14/06/2010 //20/10/2010 x redondeo
	precio_unitario = globals.operacion(precio_unitario,'*',globals.multi); //20/10/2010 x redondeo
	precio_unit_lista = globals.operacion(precio_unit_lista,'*',globals.multi); //16/04/2012 y 18/04/2012
	recalcula_total_renglon();
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"520B97C7-3D30-478D-8A72-B2E276276580"}
 */
function onDataChange_cantidad(oldValue, newValue, event) 
{
	if(cantidad<= 0)
	{
		globals.DIALOGS.showWarningDialog('Aviso',"Cantidad errónea",'OK');
	}
	recalcula_total_renglon();
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"CEAFAB1B-D076-4E0F-9E45-B2FD33D207D6"}
 */
function onDataChange_precio_unit(oldValue, newValue, event) 
{
	if(precio_unitario<= 0)
	{
		globals.DIALOGS.showWarningDialog('Aviso',"Precio Unit. erroneo",'OK');
	}
	recalcula_precio();
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"1864C89A-C04F-4EB8-862E-5CDF83FDDAE1"}
 */
function onDataChange_precio_unit_lista(oldValue, newValue, event) {
	if(precio_unit_lista<= 0)
	{
		globals.DIALOGS.showWarningDialog('Aviso',"Precio Referencia erroneo",'OK');
	}
	recalcula_precio();
	return true
}
